#ifndef EXTENTSTATISTICS_H_
#define EXTENTSTATISTICS_H_

enum stat_names{
	rand_rm,					/* number of random read-miss requests */
	rand_rm_tracks, 			/* number of random read-miss tracks */
	rand_rh,					/* number of random read-hit requests */
	rand_rh_tracks,				/* number of random read-hit tracks */
	seq_r,						/* number of sequential read requests */
	seq_r_tracks,				/* number of sequential read tracks */
	rand_w,						/* number of random write requests */
	rand_w_tracks,				/* number of random write tracks */
	kilo_rm,					/* number of read-miss kilobytes */
	seq_kilo_r,					/* number of sequential read kilobytes */
	kilo_w						/* number of write kilobytes */
};

#define numStats 11

class ExtentStatistics {
public:
	//fields
	float statistics[numStats];			/* all extent statistics: each enum stat_name is placed in matching cell */
	int time;

	ExtentStatistics (int t);	/* constructor */
	ExtentStatistics (ExtentStatistics* stat); /* constructor */
	virtual ~ExtentStatistics(); /* destructor */

	//Getters
	double getStat(int i){ return statistics[i]; };
	int getTime(){return time; };

	//multiply each statistics in g
	void multiplyStats(double g);
};
#endif	/* EXTENTSTATISTICS_H_ */
